--- title: "递增三元组" created: 2025-11-28 tags: - 算法 --- # 递增三元组 ## 题目 [递增三元组](https://www.acwing.com/problem/content/1238/) ![[image-14d5229f.png]] ## 思路分析 暴力三重循环 过7/13 ```cpp #include using namespace std; const int N=1e5+10; int a[N],b[N],c[N]; int n; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) cin>>b[i]; for(int i=1;i<=n;i++) cin>>c[i]; int cnt=0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ if(c[k]>b[j] && b[j]>a[i]) cnt++; } } } cout< using namespace std; typedef long long LL; const int N=1e5+10; LL a[N],b[N],c[N]; int n; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) cin>>b[i]; for(int i=1;i<=n;i++) cin>>c[i]; sort(a+1,a+n+1);sort(b+1,b+n+1);sort(c+1,c+n+1); LL cnt=0; for(int i=1;i<=n;i++){ int l=0,r=n; while(l>1; if(a[mid]>1; if(c[mid]>b[i]) r=mid; else l=mid+1; } LL cntc=n-r+1; cnt+=cnta*cntc; } cout< using namespace std; typedef long long LL; const int N=1e5+10; LL a[N],b[N],c[N]; int n; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) cin>>b[i]; for(int i=1;i<=n;i++) cin>>c[i]; sort(a+1,a+n+1);sort(b+1,b+n+1);sort(c+1,c+n+1); LL cnt=0; LL idx_a=0,idx_c=0; for(int i=1;i<=n;i++){ while(a[idx_a+1]